#include "../common/helper.hpp"

int main()
{
    // 示例1：基础文件操作测试----------------------------------------------
    
    // bitmq::FileHelper helper("../common/logger.hpp");  // 创建文件助手对象，指向现有文件
    // DLOG("是否存在：%d", helper.exists());   // 调试日志输出文件存在状态
    // DLOG("文件大小：%ld", helper.size());    // 调试日志输出文件大小（字节）

    // 示例2：多级目录创建与文件操作----------------------------------------
    
    // 创建指向深层路径文件的助手对象
    // bitmq::FileHelper tmp_helper("./aaa/bbb/ccc/tmp.hpp");
    // // 当目标文件不存在时
    // if (tmp_helper.exists() == false) 
    // {
    //     // 获取父目录路径（此处为"./aaa/bbb/ccc"）
    //     std::string path = bitmq::FileHelper::parentDirectory("./aaa/bbb/ccc/tmp.hpp");
        
    //     // 检查父目录是否存在
    //     if (bitmq::FileHelper(path).exists() == false) 
    //     {
    //         // 递归创建多级目录
    //         bitmq::FileHelper::createDirectory(path);
    //     }
    //     // 在已存在目录下创建空文件
    //     bitmq::FileHelper::createFile("./aaa/bbb/ccc/tmp.hpp");
    // }

    // 示例3：文件内容操作--------------------------------------------------
    // 读取整个文件内容到字符串
    // std::string body;
    // helper.read(body);
    
    // // 将读取的内容写入新文件
    // tmp_helper.write(body);
    
    // 示例4：随机访问操作测试----------------------------------------------
    // bitmq::FileHelper tmp_helper("./aaa/bbb/ccc/tmp.hpp");
    
    // // 从偏移量8读取11字节数据
    // char str[16] = {0};
    // tmp_helper.read(str, 8, 11);
    // DLOG("[%s]", str);
    
    // // 在偏移量8处写入11字节数据（覆盖模式）
    // tmp_helper.write("12345678901", 8, 11);
    
    // // 文件重命名操作
    // tmp_helper.rename("./aaa/bbb/ccc/test.hpp");

    // 示例5：清理操作-----------------------------------------------------
    // // 删除测试文件（注意：实际路径需根据前面操作调整）
    // bitmq::FileHelper::removeFile("./aaa/bbb/ccc/test.hpp");
    
    // // 递归删除整个目录结构
    // bitmq::FileHelper::removeDirectory("./aaa");

    return 0;
}